package com.swas.entity;

import java.util.ArrayList;
import java.util.List;

public class BuyBackExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Long offset;

    public BuyBackExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Long offset) {
        this.offset = offset;
    }

    public Long getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andBuycheckidIsNull() {
            addCriterion("buycheckId is null");
            return (Criteria) this;
        }

        public Criteria andBuycheckidIsNotNull() {
            addCriterion("buycheckId is not null");
            return (Criteria) this;
        }

        public Criteria andBuycheckidEqualTo(Integer value) {
            addCriterion("buycheckId =", value, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidNotEqualTo(Integer value) {
            addCriterion("buycheckId <>", value, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidGreaterThan(Integer value) {
            addCriterion("buycheckId >", value, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidGreaterThanOrEqualTo(Integer value) {
            addCriterion("buycheckId >=", value, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidLessThan(Integer value) {
            addCriterion("buycheckId <", value, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidLessThanOrEqualTo(Integer value) {
            addCriterion("buycheckId <=", value, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidIn(List<Integer> values) {
            addCriterion("buycheckId in", values, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidNotIn(List<Integer> values) {
            addCriterion("buycheckId not in", values, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidBetween(Integer value1, Integer value2) {
            addCriterion("buycheckId between", value1, value2, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andBuycheckidNotBetween(Integer value1, Integer value2) {
            addCriterion("buycheckId not between", value1, value2, "buycheckid");
            return (Criteria) this;
        }

        public Criteria andRealpriceIsNull() {
            addCriterion("realprice is null");
            return (Criteria) this;
        }

        public Criteria andRealpriceIsNotNull() {
            addCriterion("realprice is not null");
            return (Criteria) this;
        }

        public Criteria andRealpriceEqualTo(Long value) {
            addCriterion("realprice =", value, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceNotEqualTo(Long value) {
            addCriterion("realprice <>", value, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceGreaterThan(Long value) {
            addCriterion("realprice >", value, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceGreaterThanOrEqualTo(Long value) {
            addCriterion("realprice >=", value, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceLessThan(Long value) {
            addCriterion("realprice <", value, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceLessThanOrEqualTo(Long value) {
            addCriterion("realprice <=", value, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceIn(List<Long> values) {
            addCriterion("realprice in", values, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceNotIn(List<Long> values) {
            addCriterion("realprice not in", values, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceBetween(Long value1, Long value2) {
            addCriterion("realprice between", value1, value2, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealpriceNotBetween(Long value1, Long value2) {
            addCriterion("realprice not between", value1, value2, "realprice");
            return (Criteria) this;
        }

        public Criteria andRealbuycountIsNull() {
            addCriterion("realbuyCount is null");
            return (Criteria) this;
        }

        public Criteria andRealbuycountIsNotNull() {
            addCriterion("realbuyCount is not null");
            return (Criteria) this;
        }

        public Criteria andRealbuycountEqualTo(Integer value) {
            addCriterion("realbuyCount =", value, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountNotEqualTo(Integer value) {
            addCriterion("realbuyCount <>", value, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountGreaterThan(Integer value) {
            addCriterion("realbuyCount >", value, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountGreaterThanOrEqualTo(Integer value) {
            addCriterion("realbuyCount >=", value, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountLessThan(Integer value) {
            addCriterion("realbuyCount <", value, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountLessThanOrEqualTo(Integer value) {
            addCriterion("realbuyCount <=", value, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountIn(List<Integer> values) {
            addCriterion("realbuyCount in", values, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountNotIn(List<Integer> values) {
            addCriterion("realbuyCount not in", values, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountBetween(Integer value1, Integer value2) {
            addCriterion("realbuyCount between", value1, value2, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealbuycountNotBetween(Integer value1, Integer value2) {
            addCriterion("realbuyCount not between", value1, value2, "realbuycount");
            return (Criteria) this;
        }

        public Criteria andRealcostIsNull() {
            addCriterion("realcost is null");
            return (Criteria) this;
        }

        public Criteria andRealcostIsNotNull() {
            addCriterion("realcost is not null");
            return (Criteria) this;
        }

        public Criteria andRealcostEqualTo(Long value) {
            addCriterion("realcost =", value, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostNotEqualTo(Long value) {
            addCriterion("realcost <>", value, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostGreaterThan(Long value) {
            addCriterion("realcost >", value, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostGreaterThanOrEqualTo(Long value) {
            addCriterion("realcost >=", value, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostLessThan(Long value) {
            addCriterion("realcost <", value, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostLessThanOrEqualTo(Long value) {
            addCriterion("realcost <=", value, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostIn(List<Long> values) {
            addCriterion("realcost in", values, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostNotIn(List<Long> values) {
            addCriterion("realcost not in", values, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostBetween(Long value1, Long value2) {
            addCriterion("realcost between", value1, value2, "realcost");
            return (Criteria) this;
        }

        public Criteria andRealcostNotBetween(Long value1, Long value2) {
            addCriterion("realcost not between", value1, value2, "realcost");
            return (Criteria) this;
        }

        public Criteria andDecIsNull() {
            addCriterion("`dec` is null");
            return (Criteria) this;
        }

        public Criteria andDecIsNotNull() {
            addCriterion("`dec` is not null");
            return (Criteria) this;
        }

        public Criteria andDecEqualTo(String value) {
            addCriterion("`dec` =", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecNotEqualTo(String value) {
            addCriterion("`dec` <>", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecGreaterThan(String value) {
            addCriterion("`dec` >", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecGreaterThanOrEqualTo(String value) {
            addCriterion("`dec` >=", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecLessThan(String value) {
            addCriterion("`dec` <", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecLessThanOrEqualTo(String value) {
            addCriterion("`dec` <=", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecLike(String value) {
            addCriterion("`dec` like", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecNotLike(String value) {
            addCriterion("`dec` not like", value, "dec");
            return (Criteria) this;
        }

        public Criteria andDecIn(List<String> values) {
            addCriterion("`dec` in", values, "dec");
            return (Criteria) this;
        }

        public Criteria andDecNotIn(List<String> values) {
            addCriterion("`dec` not in", values, "dec");
            return (Criteria) this;
        }

        public Criteria andDecBetween(String value1, String value2) {
            addCriterion("`dec` between", value1, value2, "dec");
            return (Criteria) this;
        }

        public Criteria andDecNotBetween(String value1, String value2) {
            addCriterion("`dec` not between", value1, value2, "dec");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("`status` is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("`status` is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion("`status` =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion("`status` <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion("`status` >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("`status` >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("`status` <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("`status` <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLike(String value) {
            addCriterion("`status` like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("`status` not like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("`status` in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("`status` not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("`status` between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion("`status` not between", value1, value2, "status");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}